// 🔴 小程序的组件需调用 Component 入口函数后，才会正常渲染组件
Component({
  data: {
    // 是否已登录
    isLogin: false,
  },
  lifetimes: {
    // 在组件实例进入页面节点树时执行
    attached() {
      const app = getApp()
      const isLogin = Boolean(app.token)
      this.setData({
        isLogin,
      })

      // 获取当前页面栈。最后一个元素为当前页面。
      const pages = getCurrentPages()
      const page = pages[pages.length - 1]
      // 如果未登录，跳转到登录页
      if (!isLogin) {
        // 页面都不渲染了，这些自动执行的页面生命周期也屏蔽掉
        page.onLoad = () => {}
        page.onShow = () => {}
        page.onReady = () => {}
        // 关闭当前页面，跳转到应用内的某个页面。
        wx.redirectTo({
          // 🔴 携带当前页面的路径，必须是以 / 开头的完整路径。
          url: `/pages/login/index?redirectURL=/${page.route}`,
        })
      }
    },
  },
})
